/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package src.com.dados.infraEstrutura;

import src.com.negocio.infraEstrutura.Unidade;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import src.com.dados.Conexao;

/**
 *
 * @author Giane
 */
public class UnidadeDao {

    public ArrayList<String> consultaUnidade() throws SQLException {
    Connection conexao;
        ArrayList<String> result = new ArrayList<String>();
        String select_unidade = "SELECT und_codigo FROM und_unidade;";
        String url = "jdbc:mysql://localhost/bdeng2";
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        //Class.forName("com.mysql.jdbc.Driver");
        conexao = DriverManager.getConnection(url, "root", "dados");
        //System.out.println("2 - " + select_ano);

        PreparedStatement stmt = conexao.prepareStatement(select_unidade);
        ResultSet rs = stmt.executeQuery();

        while (rs.next()) {
            result.add(rs.getString(1));
            // System.out.println(rs.getString(1));
        }

        conexao.close();
        return result;    
    }
    
    public String id_unidade(String uni) throws SQLException {
        Connection conexao;
        String result = null;
       
        String select_idUnidade = "SELECT und_unidade_id FROM und_unidade where und_codigo like '"+uni+"';";
        

        String url = "jdbc:mysql://localhost/bdeng2";
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        conexao = DriverManager.getConnection(url, "root", "dados");
        PreparedStatement stmt = conexao.prepareStatement(select_idUnidade);
        ResultSet rs = stmt.executeQuery();



        while (rs.next()) {
            result = rs.getString(1);
        }

        conexao.close();
        return result;


    }

    public boolean cadastraUnidade(Unidade novaUnidade) {
        Connection con;
        
        con = Conexao.getInstance().getCon();
        
        String sql = "INSERT INTO und_unidade (und_codigo, und_endereco) values (?,?)";
        PreparedStatement pstmt;
        
        try {
            // cria um preparedStatement
            pstmt = con.prepareStatement(sql);

            // preenche os valores
            pstmt.setString(1, novaUnidade.getCodigo());
            pstmt.setString(2, novaUnidade.getEndereco());
            
            pstmt.executeUpdate();

            System.out.println("Unidade gravada!");
            return true;
        } catch (SQLException e) {
        }
        return false;
        
        
        
    }

    public Unidade buscarUnidade(String codigo)  throws SQLException {
        Connection con;

        con = Conexao.getInstance().getCon();
        String sql = "SELECT * FROM und_unidade WHERE und_codigo = '" + codigo + "'";

        try {
            Statement stm;
            stm = con.createStatement();
            ResultSet rs = stm.executeQuery(sql);

            if (rs.next()) {
                Unidade unidadeEncontrada = new Unidade();
                unidadeEncontrada.setCodigo(codigo);
                unidadeEncontrada.setEndereco(rs.getString("und_endereco"));
                
                
                return unidadeEncontrada;
            }
        } catch (SQLException e) {
            System.out.println(e);
        }
        return null;
    }

    public boolean excluirUnidade(String codigo) throws SQLException {
        Connection con;

        con = Conexao.getInstance().getCon();
        String sql = "DELETE FROM und_unidade WHERE und_codigo = '" + codigo + "'";

        try {
            Statement stm;
            stm = con.createStatement();
            stm.execute(sql);
            return true;

        } catch (SQLException e) {
            System.out.println(e);
        }
        return false;
    }

    public boolean atualizarUnidade(Unidade novaUnidade) {
        Connection con = Conexao.getInstance().getCon();
        
        String sql = "UPDATE und_unidade SET und_endereco=? WHERE und_codigo=?;";
        PreparedStatement pstmt;

        try {
            // cria um preparedStatement
            pstmt = con.prepareStatement(sql);

            // preenche os valores
            pstmt.setString(1, novaUnidade.getEndereco());
            pstmt.setString(2, novaUnidade.getCodigo());

            pstmt.executeUpdate();

            System.out.println("Atualizacao realizada!");
            return true;
        } catch (SQLException e) {
            System.out.println(e);
        }
        return false;

    
    }
    
}
